800
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)

OBJECT grid,items,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectCallMethod( grid , "EndUpdate");
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( grid , "EnsureVisibleColumn", 0);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(FirstVisibleItem) = False");
_ObjectCallMethod( grid , "EndUpdate");

799
Is there any public method to export the selected data

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "C1");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C2") , "FormatColumn", "1 index `A-Z`");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C3") , "FormatColumn", "100 index ``");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(AddItem(`Item 2`)) = True");
	_ObjectCallMethod( items , "AddItem", "Item 3");
_ObjectCallMethod( grid , "EndUpdate");
Message( "Export CSV Selected Items Only:" );
Message( _ObjectCallMethod( grid , "Export", "","sel") );

798
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

OBJECT grid;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ScrollBars", 15);
_ObjectCallMethod(grid, "ExecuteTemplate", "ScrollPartVisible(0,65536) = True");
_ObjectCallMethod(grid, "ExecuteTemplate", "ScrollPartVisible(1,65536) = True");
_ObjectCallMethod(grid, "ExecuteTemplate", "ScrollPartVisible(2,65536) = True");
_ObjectSetProperty( grid , "ScrollWidth", 4);
_ObjectCallMethod(grid, "ExecuteTemplate", "Background(276) = 15790320");
_ObjectCallMethod(grid, "ExecuteTemplate", "Background(260) = 8421504");
_ObjectSetProperty( grid , "ScrollHeight", 4);
_ObjectCallMethod(grid, "ExecuteTemplate", "Background(404) = Background(276)");
_ObjectCallMethod(grid, "ExecuteTemplate", "Background(388) = Background(260)");
_ObjectCallMethod(grid, "ExecuteTemplate", "Background(511) = Background(276)");
_ObjectCallMethod( grid , "EndUpdate");

797
I need to format a Column with Currency Format, but we use we are using Dhirams (AED)for the Amount. How to do this

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "Name");
	column = _ObjectCallMethod( columns , "Add", "Currency");
		_ObjectSetProperty( column , "SortType", 1);
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "Width", 64);
		_ObjectSetProperty( column , "FormatColumn", "currency(value)");
	column = _ObjectCallMethod( columns , "Add", "Format");
		_ObjectSetProperty( column , "SortType", 1);
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "Width", 64);
		_ObjectSetProperty( column , "FormatColumn", "`AED ` + (value format ``)");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Value 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = 10");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = 10");
	h = _ObjectCallMethod( items , "AddItem", "Value 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = 20");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = 20");
_ObjectCallMethod( grid , "EndUpdate");

796
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Car");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "FilterType", 240);
		_ObjectSetProperty( column , "Filter", "MAZDA");
	column = _ObjectCallMethod( columns , "Add", "Equipment");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "DisplayFilterPattern", 0);
		_ObjectSetProperty( column , "CustomFilter", "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*");
		_ObjectSetProperty( column , "FilterType", 3);
		_ObjectSetProperty( column , "Filter", "AIR BAG");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Mazda`),1) = `Air Bag`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Toyota`),1) = `Air Bag,Air condition`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Ford`),1) = `Air condition`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Nissan`),1) = `Air Bag,ABS,ESP`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Mazda`),1) = `Air Bag, ABS,ESP`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Mazda`),1) = `ABS,ESP`");
_ObjectCallMethod( grid , "ApplyFilter");
_ObjectCallMethod( grid , "EndUpdate");

795
How can I have a case-sensitive filter

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Car");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "FilterType", 496);
		_ObjectSetProperty( column , "Filter", "Mazda");
	column = _ObjectCallMethod( columns , "Add", "Equipment");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "DisplayFilterPattern", 0);
		_ObjectSetProperty( column , "CustomFilter", "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*");
		_ObjectSetProperty( column , "FilterType", 259);
		_ObjectSetProperty( column , "Filter", "Air Bag");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Mazda`),1) = `Air Bag`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Toyota`),1) = `Air Bag,Air condition`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Ford`),1) = `Air condition`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Nissan`),1) = `Air Bag,ABS,ESP`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Mazda`),1) = `Air Bag, ABS,ESP`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Mazda`),1) = `ABS,ESP`");
_ObjectCallMethod( grid , "ApplyFilter");
_ObjectCallMethod( grid , "EndUpdate");

794
How can I exclude an item from aggregate/total computation

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Add(`Default`).Def(17) = 1");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 1");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `sum(all,rec,%0)`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``Sum: ` + (value format ``) `");
	_ObjectCallMethod( items , "AddItem", 10);
	h = _ObjectCallMethod( items , "AddItem", 20);
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SortableItem(h) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = `value + ` <fgcolor=808080> this item is excluded from aggregate computations</fgcolor>``");
	_ObjectCallMethod( items , "AddItem", 30);

793
Is is possible to change the default group header to display sum rather than count

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "HasLines", 0);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(6).AllowGroupBy = False");
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "GroupByFormatCell", "'<caption> (sum: <b>' + value + '</b>, of Freight)'");
	_ObjectSetProperty( column , "GroupByTotalField", "sum(current,rec,%6)");
	_ObjectSetProperty( column , "SortOrder", -1);
_ObjectCallMethod( grid , "EndUpdate");

792
How do I get the caption of the group during the AddGroupItem event

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION gridEvents_AddGroupItem(OBJECT grid, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", Item)
		Message( "Caption:" );
		Message( _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellCaption(Item,GroupItem(Item))") );
		Message( "Value:" );
		Message( _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(Item,GroupItem(Item))") );
END

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "HasLines", 0);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "AllowGroupBy", -1);
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "GroupByFormatCell", "'<b><caption></b> (' + value + ') group'");
	_ObjectSetProperty( column , "SortOrder", -1);
_ObjectCallMethod( grid , "EndUpdate");

791
Is it possible, to add more aggregate functions to grouping header

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION gridEvents_AddGroupItem(OBJECT grid, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", Item)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(Item,GroupItem(Item)) = `value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column``");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(Item,`Min`) = `min(current,all,dbl(%6))`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Min`) = 4");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(Item,`Max`) = `max(current,all,dbl(%6))`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Max`) = 4");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(Item,`Sum`) = `sum(current,all,dbl(%6))`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Sum`) = 4");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT columns,grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "HasLines", 0);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Min") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Max") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Sum") , "Visible", 0);
_ObjectCallMethod( grid , "EndUpdate");

790
Is it possible to display more aggregate functions to a single cell (method 2)

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "SortOnClick", 0);
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "Indent", 13);
_ObjectSetProperty( grid , "HeaderVisible", 0);
_ObjectSetProperty( grid , "LinesAtRoot", -1);
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "Quantity") , "Editor") , "EditType", 4);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Sum") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Min") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Max") , "Visible", 0);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellMerge(h,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>``");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = `sum(current,dir,dbl(%1))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,2) = 4");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,3) = `min(current,dir,dbl(%1))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,3) = 4");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,4) = `max(current,dir,dbl(%1))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,4) = 4");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 1`),1) = 10");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 2`),1) = 20");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 3`),1) = 30");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( grid , "EndUpdate");

789
How can I use the current in the aggregate/total field

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "SortOnClick", 0);
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "Indent", 13);
_ObjectSetProperty( grid , "HeaderVisible", 0);
_ObjectSetProperty( grid , "LinesAtRoot", -1);
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "Quantity") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `sum(current,dir,dbl(%1))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,1) = 4");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,1) = ``Total: `+ value`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 1`),1) = 10");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 2`),1) = 20");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 3`),1) = 30");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( grid , "EndUpdate");

788
How can I prevent a specified item to be not included in the aggregate/total function

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "DrawGridLines", -1);
_ObjectSetProperty( grid , "SortOnClick", 0);
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "HasLines", 2);
_ObjectSetProperty( grid , "HeaderVisible", 0);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Numbers");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellEditorVisible(h,0) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(InsertItem(h,,10)) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(InsertItem(h,,20)) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(InsertItem(h,,30)) = True");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","not included");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h1)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellEditorVisible(h1,0) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h1,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHAlignment(h1,0) = 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SortableItem(h1) = False");
	h1 = _ObjectCallMethod( items , "InsertItem", 0,"","sum(all,rec,dbl(%0))");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h1) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h1) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h1,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h1,0) = ``Sum: ` + value`");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( grid , "EndUpdate");

787
Is is possible to specify which items/cells/fields to be included by the aggregate/total function I am using

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION gridEvents_AddItem(OBJECT grid, INT Item)
	_ObjectCallMethod(grid, "TemplatePut", "Dim Item")
	_ObjectCallMethod(grid, "TemplatePut", Item)
	_ObjectCallMethod(grid, "ExecuteTemplate", "Items.SortableItem(Item) = False");
END

// CellStateChanged event - Fired after cell's state has been changed.
FUNCTION gridEvents_CellStateChanged(OBJECT grid, INT Item, INT ColIndex)
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,ColIndex,Item")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", ColIndex)
		_ObjectCallMethod(grid, "TemplatePut", Item)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SortableItem(Item) = CellState(Item,ColIndex)");
	_ObjectCallMethod( grid , "Refresh");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "TreeColumnIndex", -1);
_ObjectSetProperty( grid , "FullRowSelect", 0);
_ObjectSetProperty( grid , "DrawGridLines", -1);
_ObjectSetProperty( grid , "SortOnClick", 0);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Check Numbers") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHasCheckBox(AddItem(10),0) = True");
	h = _ObjectCallMethod( items , "AddItem", 20);
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHasCheckBox(h,0) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellState(h,0) = 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHasCheckBox(AddItem(30),0) = True");
	h = _ObjectCallMethod( items , "AddItem", "sum(all,rec,dbl(%0))");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``sum on checked items : ` + value`");
_ObjectCallMethod( grid , "EndUpdate");

786
Can I display multiple total/aggregate functions such as sum, min or max, into a single cell (method 1)

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "TreeColumnIndex", -1);
_ObjectSetProperty( grid , "FullRowSelect", 0);
_ObjectSetProperty( grid , "DrawGridLines", -1);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 10);
	_ObjectCallMethod( items , "AddItem", 20);
	_ObjectCallMethod( items , "AddItem", 30);
	h = _ObjectCallMethod( items , "AddItem", "sum(all,rec,dbl(%0))");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``sum: ` + value`");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SplitCell(h,0)");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(0,h) = `min(all,rec,dbl(%0))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(0,h) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(0,h) = ``min: ` + value`");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SplitCell(0,h)");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(0,h) = `max(all,rec,dbl(%0))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(0,h) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(0,h) = ``max: ` + value`");
_ObjectCallMethod( grid , "EndUpdate");

785
How can I use the index of the item in total/aggregate functions, rather than root or parent

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "TreeColumnIndex", -1);
_ObjectSetProperty( grid , "FullRowSelect", 0);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor") , "EditType", 4);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Idx");
	_ObjectSetProperty( column , "FormatColumn", "0 index ``");
	_ObjectSetProperty( column , "Width", 24);
	_ObjectSetProperty( column , "AllowSizing", 0);
	_ObjectSetProperty( column , "Enabled", 0);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "3 Numbers");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemHeight(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
	_ObjectCallMethod( items , "InsertItem", h,"",10);
	_ObjectCallMethod( items , "InsertItem", h,"",20);
	_ObjectCallMethod( items , "InsertItem", h,"",30);
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "sum(0,dir,dbl(%0))");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``sum of first three numbers is ` + value`");
	h = _ObjectCallMethod( items , "AddItem", "3 Numbers");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemHeight(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
	_ObjectCallMethod( items , "InsertItem", h,"",15);
	_ObjectCallMethod( items , "InsertItem", h,"",35);
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "count(5,dir,dbl(%0))");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``count of next two numbers is ` + value`");
_ObjectCallMethod( grid , "EndUpdate");

784
How can I have a better view of what current, parent, all, dir or rec means in total/aggregate fields

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", 1);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `sum(current,dir,dbl(%0))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = `'sum of <fgcolor=FF0000><b>Direct</b> children: '+value + `</fgcolor> using <a>sum(current,dir,dbl(%0))``");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemForeColor(InsertItem(h,,10)) = 255");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemForeColor(InsertItem(h,,20)) = 255");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemForeColor(InsertItem(h,,30)) = 255");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `sum(current,rec,dbl(%0))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = `'sum of <fgcolor=00FF00><b>Leaf</b> chidlren: '+value +`</fgcolor> using <a>sum(current,rec,dbl(%0))``");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemForeColor(InsertItem(InsertItem(InsertItem(InsertItem(h,,100),,10),,10),,1)) = 65280");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemForeColor(InsertItem(InsertItem(h,,200),,2)) = 65280");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemForeColor(InsertItem(InsertItem(h,,300),,3)) = 65280");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","sum(parent,direct,%0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h1)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h1,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h1,0) = `'sum of <b>Parent Direct</b> children: '+value +`</fgcolor> using <a>sum(parent,direct,%0)``");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","sum(parent,rec,%0)");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h1,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h1,0) = `'sum of <fgcolor=00FF00><b>Parent Leaf</b> children: '+value +`</fgcolor> using <a>sum(parent,rec,%0)``");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(0) = True");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `sum(all,rec,dbl(%0))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = `'sum of <fgcolor=FF00FF><b>All (leaf children)</b>: '+value  +`</fgcolor> using <a>sum(all,rec,dbl(%0))``");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `sum(all,all,dbl(%0))`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 5");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,0) = `'sum of <fgcolor=FF00FF><b>All (children)</b>: '+value  +`</fgcolor> using <a>sum(all,all,dbl(%0))``");
_ObjectCallMethod( grid , "EndUpdate");

783
Do you have any Fit-To-Page options when printing the control

OBJECT createobject("exontrol.print"),grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
_ObjectSetProperty( grid , "ContinueColumnScroll", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	_ObjectSetProperty( createobject("exontrol.print") , "Options", "FitToPage = On");
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", grid);
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

782
How do I hide the selection

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
_ObjectSetProperty( grid , "SelForeColor", _ObjectGetProperty( grid , "ForeColor"));
_ObjectSetProperty( grid , "SelBackColor", _ObjectGetProperty( grid , "BackColor"));
_ObjectSetProperty( grid , "ShowFocusRect", 0);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Format");
		_ObjectSetProperty( column , "FormatColumn", "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=00" +
	"00FF>+'+(value format '2|.|3|,' ): '0.00') )");
		_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(grid, "TemplatePut", column)
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(17) = 1");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 10);
	_ObjectCallMethod( items , "AddItem", -8);
_ObjectCallMethod( grid , "EndUpdate");

781
How do I access the cells, or how do I get the values in the columns

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "C1");
	_ObjectCallMethod( columns , "Add", "C2");
	_ObjectCallMethod( columns , "Add", "C3");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `SubItem 1.1`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = `SubItem 1.2`");
	Message( _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2)") );

780
I am using the FormatColumn/FormatCell to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

// SelectionChanged event - Fired after a new item has been selected.
FUNCTION gridEvents_SelectionChanged()
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		_ObjectCallMethod( items , "ClearItemBackColor", 0);
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBackColor(SelectedItem(0)) = 16777088");
END

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
_ObjectSetProperty( grid , "SelForeColor", _ObjectGetProperty( grid , "ForeColor"));
_ObjectSetProperty( grid , "SelBackColor", _ObjectGetProperty( grid , "BackColor"));
_ObjectSetProperty( grid , "ShowFocusRect", 0);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Format");
		_ObjectSetProperty( column , "FormatColumn", "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=00" +
	"00FF>+'+(value format '2|.|3|,' ): '0.00') )");
		_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(grid, "TemplatePut", column)
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(17) = 1");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 10);
	_ObjectCallMethod( items , "AddItem", -8);
_ObjectCallMethod( grid , "EndUpdate");

779
How can I get the number of columns being shown in the control's SortBar part

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(2).SortOrder = True");
Message( _ObjectGetProperty( _ObjectGetProperty( grid , "Columns") , "SortBarColumnsCount") );
_ObjectCallMethod( grid , "EndUpdate");

778
How can I add a header and footer for grouping items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION gridEvents_AddGroupItem(OBJECT grid, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		h = _ObjectCallMethod( items , "InsertItem", Item,"","");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", h)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,6) = `min(parent,rec,dbl(%6))`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,6) = 5");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,6) = ``<font ;7><b>Min</b>: ` + value`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(h) = 0");
		h = _ObjectCallMethod( items , "InsertItem", Item,"","");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,6) = `max(parent,rec,dbl(%6))`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,6) = 5");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,6) = ``<font ;7><b>Max</b>: ` + value`");
END

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "HasLines", 0);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
_ObjectCallMethod( grid , "EndUpdate");

777
How can I add a footer for grouping items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION gridEvents_AddGroupItem(OBJECT grid, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		h = _ObjectCallMethod( items , "InsertItem", Item,"","");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", h)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,6) = `sum(parent,rec,dbl(%6))`");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,6) = 5");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.FormatCell(h,6) = ``<font ;7><b>Sum</b>: ` + value`");
END

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "HasLines", 0);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
_ObjectCallMethod( grid , "EndUpdate");

776
How can I handle the event for the inside controls

// ItemOleEvent event - Fired when an ActiveX control hosted by an item has fired an event.
FUNCTION gridEvents_ItemOleEvent(OBJECT grid, INT Item, OBJECT Ev)
	Message( Ev );
END

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectSetProperty( grid , "LinesAtRoot", -1);
_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "InsertControlItem", h,"Exontrol.Grid");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemHeight(h) = 256");
	grid = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemObject(h)");
		_ObjectSetProperty( grid , "LinesAtRoot", -1);
		_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
		_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "C1");
		_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "C2");
		items = _ObjectGetProperty( grid , "Items");
			_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
			_ObjectCallMethod(grid, "TemplatePut", items)
			_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(1),1) = 2");
		h = _ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", 3);
		_ObjectCallMethod(grid, "TemplatePut", "Dim h")
		_ObjectCallMethod(grid, "TemplatePut", h)
		_ObjectCallMethod(grid, "ExecuteTemplate", "Items.CellValue(h,1) = 4");
		items = _ObjectGetProperty( grid , "Items");
			_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
			_ObjectCallMethod(grid, "TemplatePut", items)
			_ObjectCallMethod(grid, "TemplatePut", h)
			_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
			h = _ObjectCallMethod( items , "InsertControlItem", h,"Exontrol.Grid");
			grid = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemObject(h)");
				_ObjectSetProperty( grid , "LinesAtRoot", -1);
				_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Inside-Inside");
				items = _ObjectGetProperty( grid , "Items");
					h = _ObjectCallMethod( items , "AddItem", "item");
					_ObjectCallMethod( items , "InsertItem", h,"","child 1");
					_ObjectCallMethod( items , "InsertItem", h,"","child 2");
					_ObjectCallMethod( items , "InsertItem", h,"","child 3");

775
How can I specify the position of the item manually (Method 2)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Child 3");
	_ObjectCallMethod( items , "AddItem", "Child 2");
	_ObjectCallMethod( items , "AddItem", "Child 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(ItemByIndex(0)) = 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(ItemByIndex(1)) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(ItemByIndex(2)) = 0");

774
How can I specify the position of the item manually (Method 1)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h3 = _ObjectCallMethod( items , "AddItem", "Child 3");
	h2 = _ObjectCallMethod( items , "AddItem", "Child 2");
	h1 = _ObjectCallMethod( items , "AddItem", "Child 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h3")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h3)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(h3) = 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h2")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h2)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(h2) = 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h1)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemPosition(h1) = 0");

773
Is it possible to open second inside grid in inside-grid

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", -1);
_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "InsertControlItem", h,"Exontrol.Grid");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemHeight(h) = 256");
	grid = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemObject(h)");
		_ObjectSetProperty( grid , "LinesAtRoot", -1);
		_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
		_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "C1");
		_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "C2");
		items = _ObjectGetProperty( grid , "Items");
			_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
			_ObjectCallMethod(grid, "TemplatePut", items)
			_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(1),1) = 2");
		h = _ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", 3);
		_ObjectCallMethod(grid, "TemplatePut", "Dim h")
		_ObjectCallMethod(grid, "TemplatePut", h)
		_ObjectCallMethod(grid, "ExecuteTemplate", "Items.CellValue(h,1) = 4");
		items = _ObjectGetProperty( grid , "Items");
			_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
			_ObjectCallMethod(grid, "TemplatePut", items)
			_ObjectCallMethod(grid, "TemplatePut", h)
			_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
			h = _ObjectCallMethod( items , "InsertControlItem", h,"Exontrol.Grid");
			grid = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemObject(h)");
				_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Inside-Inside");
				_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", "item");

772
Computed field concatating strings values to calculated values. Is there something we can change this

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "A");
	_ObjectCallMethod( columns , "Add", "B");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Sum") , "ComputedField", "dbl(%0) + dbl(%1)");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Concaternation") , "ComputedField", "str(%0) + str(%1)");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(1),1) = 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(21),1) = 22");

771
Is it possible the Items.FormatCell or Column.FormatColumn to use values from other columns

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "A") , "Editor") , "EditType", 4);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "B") , "FormatColumn", "currency(%0)");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C") , "FormatColumn", "%1 format ''");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 1);
	_ObjectCallMethod( items , "AddItem", 2);
	_ObjectCallMethod( items , "AddItem", 3);

770
Is it possible to do un-grouping the items

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
FUNCTION gridEvents_Click()
	_ObjectCallMethod( grid , "Ungroup");
END

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarHeight", 24);
_ObjectSetProperty( grid , "HeaderHeight", 24);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectSetProperty( grid , "ReadOnly", -1);
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "Alignment", 1);
	_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(grid, "TemplatePut", column)
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(4) = 15790320");
	_ObjectSetProperty( column , "SortOrder", -1);
_ObjectCallMethod( grid , "EndUpdate");

769
How can I change the visual aspect of the links in the sort bar

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarHeight", 24);
_ObjectSetProperty( grid , "HeaderHeight", 24);
_ObjectSetProperty( grid , "BackColorSortBar", 15790320);
_ObjectSetProperty( grid , "BackColorSortBarCaption", _ObjectGetProperty( grid , "BackColor"));
_ObjectCallMethod( _ObjectGetProperty( grid , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpA" +
	"AWL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABj" +
	"EovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI");
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "Alignment", 1);
	_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(grid, "TemplatePut", column)
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(4) = 15790320");
	_ObjectSetProperty( column , "SortOrder", -1);
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(5)");
	_ObjectSetProperty( column , "Alignment", 1);
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(4) = 16119285");
	_ObjectSetProperty( column , "SortOrder", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Background(28) = 16777216");
_ObjectCallMethod( grid , "EndUpdate");

768
Is it possible to display no +/- button for grouped items

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "Alignment", 1);
	_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(grid, "TemplatePut", column)
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(4) = 15790320");
_ObjectCallMethod( grid , "EndUpdate");

767
How can I remove the extra information that grouped items display

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(6).AllowGroupBy = False");
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "GroupByTotalField", "");
	_ObjectSetProperty( column , "GroupByFormatCell", "");
_ObjectCallMethod( grid , "EndUpdate");

766
How can I change the label, caption or the formula of the grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION gridEvents_AddItem(OBJECT grid, INT Item)
	_ObjectCallMethod(grid, "TemplatePut", "Dim Item")
	_ObjectCallMethod(grid, "TemplatePut", Item)
	_ObjectCallMethod(grid, "ExecuteTemplate", "Items.ItemDividerLineAlignment(Item) = 3");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( grid , "Refresh");
END

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(6).AllowGroupBy = False");
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "GroupByTotalField", "sum(current,rec,%6)");
	_ObjectSetProperty( column , "GroupByFormatCell", "'<font ;11>' + <caption> + '</font> <fgcolor=808080>( Freight: ' + currency(value) + ')'");
_ObjectSetProperty( grid , "DefaultItemHeight", 28);
_ObjectCallMethod( grid , "EndUpdate");

765
How can I change the aspect of grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION gridEvents_AddItem(OBJECT grid, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( grid , "Items");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", Item)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDividerLine(Item) = 0");
		l = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.GroupItem(Item)");
		_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,Item,l")
		_ObjectCallMethod(grid, "TemplatePut", items)
		_ObjectCallMethod(grid, "TemplatePut", Item)
		_ObjectCallMethod(grid, "TemplatePut", l)
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellSingleLine(Item,l) = False");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellBold(Item,l) = True");
		_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellBackColor(Item,l) = 16777216");
END

OBJECT column,grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
_ObjectSetProperty( grid , "LinesAtRoot", 0);
_ObjectSetProperty( grid , "TreeColumnIndex", -1);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectCallMethod( _ObjectGetProperty( grid , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAEGg4BKoCg6AADACAxRDAMgBQKAAzQFAYcBuGiGAAGMZhWgmFgAQhFcZQSKUOQTDKMIziaQIRDEMw5SSNIxyAK0QBkAqNQCkKKwIgmNYDSBMYABB" +
	"IMBwiGQaRJnegYRDUMJCQjRVITVLMNoXDKZIyqEAHfpWVJWSLHcIhDBJUjcOYyTiOQrzCK8dB0G6bIrGEZpYRAPwEYDIIjbQhqFYDChCNLwHScEAxC4kLhnKK6Vb9d6H" +
	"YhiOJYXhmDrfR7IMhyLI8QafFqXZhmOZZXizPY9T7QNB0LQ8eZbJqnahqOpaOx2W5dV7YNh2LTWGzXNq3bhuOzLbrme59X7gOB3RZeE4XRrHchxKq8XxnG6dZ7oOTUXo" +
	"fFOK5WmudQTh2LpfHOO5em+doSh4LwfhOS5mnGIw9D6LxfjOW5unSIQ+D8L4flOa5yD2fg/D+L5fnOe54ByigGAKAJgEgBBrgGYIICYCoCmCSAcGOA5hAgRgSgSYQBGo" +
	"FoFmGCBmBqBphGESgegeYgIgYIoHkSKIWCaCZigiJgqgqYhog4LoLmGSJGDKBZhEiVg2gMY4ImYCIBGOSJ1n6D5kAeZZ2hCZBHj4RoRl6J4eEqEpeAkNhOHaXYJEYUh0" +
	"GUSRVkwchlgkZZChaZZGnWOoXmYBpOGKGJamaLhmhmWhJiYahnlmSY2G4ZZZEmRhyGMZxJlWCBhFCFgWHaHpYkmSh+GSJp6AWG4amgRoOGeIZahmEoKGyJgKDWOIXGkB" +
	"wGFmJJcHkWoWHQJQqGWVoTmmRx+EuJ5eFkIoiHuJBKhWdIQGqB52D2KpgDiaougMIxqyODJrEgbgvi2YgYjKOoumKSpij4FIrFsBg0iyLBKj6RoOmqSwmimMpkCqGpOi" +
	"ibQJCaII0mmWxWFCJotgoXpahWaRLHaEY3mWag6mKIpuEmFoIjmaBbiYbIgi6RhaH+O5Onmcpyh2VYAAEASAg");
_ObjectSetProperty( grid , "DrawGridLines", 1);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1)");
	_ObjectSetProperty( column , "GroupByFormatCell", "'EmployeeID: ' + <caption> + '<br><font ;7><fgcolor=808080>Count: ' + value");
_ObjectCallMethod( grid , "EndUpdate");

764
How can I remove or change the line it shows for grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION gridEvents_AddItem(OBJECT grid, INT Item)
	_ObjectCallMethod(grid, "TemplatePut", "Dim Item")
	_ObjectCallMethod(grid, "TemplatePut", Item)
	_ObjectCallMethod(grid, "ExecuteTemplate", "Items.ItemDividerLine(Item) = 0");
END

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod( grid , "EndUpdate");

763
Is it possible to determine whether an item is regular or a group by item
// MouseMove event - Occurs when the user moves the mouse.
FUNCTION gridEvents_MouseMove(OBJECT grid, INT Button, INT Shift, INT X, INT Y)
	_ObjectCallMethod(grid, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(grid, "TemplatePut", c)
	_ObjectCallMethod(grid, "TemplatePut", hit)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim _ObObj,h")
	_ObjectCallMethod(grid, "TemplatePut", _ObjectGetProperty( grid , "Items"))
	_ObjectCallMethod(grid, "TemplatePut", h)
	Message( _ObjectCallMethod(grid, "ExecuteTemplate", "_ObObj.GroupItem(h)") );
END

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod( grid , "EndUpdate");

762
How can I collapse all items when the user performs a grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION gridEvents_AddGroupItem(OBJECT grid, INT Item)
	_ObjectCallMethod(grid, "TemplatePut", "Dim Item")
	_ObjectCallMethod(grid, "TemplatePut", Item)
	_ObjectCallMethod(grid, "ExecuteTemplate", "Items.ExpandItem(Item) = False");
END

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod( grid , "EndUpdate");

761
Is it possible to select columns that user can drop to the sort bar, when using the Group By feature

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "<fgcolor=FF0000>Try to drag the EmployeeID column here.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).AllowGroupBy = False");
_ObjectCallMethod( grid , "EndUpdate");

760
How can I enable the Group By support, with no sort bar

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SingleSort", 0);
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
_ObjectCallMethod( grid , "EndUpdate");

759
Does your control support Group-By feature

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "SortBarVisible", -1);
_ObjectSetProperty( grid , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( grid , "AllowGroupBy", -1);
_ObjectCallMethod( grid , "EndUpdate");

758
How can I restrict a field to number only (Method 3, Float)

OBJECT editor,grid;

grid =  ObjectByName("AN1") ;
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor");
	_ObjectSetProperty( editor , "EditType", 1);
	_ObjectSetProperty( editor , "Numeric", 1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", 12);

757
How can I restrict a field to number only (Method 2, Integer only)

OBJECT editor,grid;

grid =  ObjectByName("AN1") ;
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor");
	_ObjectSetProperty( editor , "EditType", 1);
	_ObjectSetProperty( editor , "Numeric", -1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", 12);

756
How can I restrict a field to number only (Method 1)

OBJECT editor,grid;

grid =  ObjectByName("AN1") ;
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Numbers") , "Editor");
	_ObjectSetProperty( editor , "EditType", 8);
	_ObjectSetProperty( editor , "Mask", "###.###");
_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", 12);

755
Is it possible to include only leaf items ( items with no childs ) in the drop down list

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 1315);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( grid , "EndUpdate");

754
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Item");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "Filter", "Child 1");
	_ObjectSetProperty( column , "FilterType", 240);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Date");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "DisplayFilterDate", -1);
	_ObjectSetProperty( column , "FilterList", 9474);
	_ObjectSetProperty( column , "Filter", #12/28/2010#);
	_ObjectSetProperty( column , "FilterType", 4);
_ObjectSetProperty( grid , "FilterCriteria", "%0 or %1");
_ObjectCallMethod(grid, "ExecuteTemplate", "Description(23) = `<font ;18><fgcolor=FF0000>or</fgcolor></font>`");
_ObjectCallMethod(grid, "ExecuteTemplate", "Description(11) = `<font ;18><fgcolor=FF0000>and</fgcolor></font>`");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Child 1`),1) = #12/27/2010#");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Child 2`),1) = #12/28/2010#");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Child 1`),1) = #12/29/2010#");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Child 2`),1) = #12/30/2010#");
_ObjectCallMethod( grid , "ApplyFilter");
_ObjectCallMethod( grid , "EndUpdate");

753
Is it possible exclude the dates being selected in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Date");
	_ObjectSetProperty( column , "SortType", 2);
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "DisplayFilterDate", -1);
	_ObjectSetProperty( column , "FilterList", 9474);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", #12/27/2010#);
	_ObjectCallMethod( items , "AddItem", #12/28/2010#);
	_ObjectCallMethod( items , "AddItem", #12/29/2010#);
	_ObjectCallMethod( items , "AddItem", #12/30/2010#);
	_ObjectCallMethod( items , "AddItem", #12/31/2010#);
_ObjectCallMethod( grid , "EndUpdate");

752
How can I display a calendar control inside the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Date");
	_ObjectSetProperty( column , "SortType", 2);
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "DisplayFilterDate", -1);
	_ObjectSetProperty( column , "FilterList", 1282);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", #12/27/2010#);
	_ObjectCallMethod( items , "AddItem", #12/28/2010#);
	_ObjectCallMethod( items , "AddItem", #12/29/2010#);
	_ObjectCallMethod( items , "AddItem", #12/30/2010#);
	_ObjectCallMethod( items , "AddItem", #12/31/2010#);
_ObjectCallMethod( grid , "EndUpdate");

751
Is it possible to include the dates as checkb-boxes in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Dates");
	_ObjectSetProperty( column , "SortType", 2);
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", -1);
	_ObjectSetProperty( column , "DisplayFilterDate", -1);
	_ObjectSetProperty( column , "FilterList", 1280);
	_ObjectSetProperty( column , "Filter", "to 12/27/2010");
	_ObjectSetProperty( column , "FilterType", 4);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", #12/27/2010#);
	_ObjectCallMethod( items , "AddItem", #12/28/2010#);
	_ObjectCallMethod( items , "AddItem", #12/29/2010#);
	_ObjectCallMethod( items , "AddItem", #12/30/2010#);
	_ObjectCallMethod( items , "AddItem", #12/31/2010#);
_ObjectCallMethod( grid , "ApplyFilter");
_ObjectCallMethod( grid , "EndUpdate");

750
How can I filter items for dates before a specified date

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Dates");
	_ObjectSetProperty( column , "SortType", 2);
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", -1);
	_ObjectSetProperty( column , "DisplayFilterDate", -1);
	_ObjectSetProperty( column , "FilterList", 1026);
	_ObjectSetProperty( column , "Filter", "to 12/27/2010");
	_ObjectSetProperty( column , "FilterType", 4);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", #12/27/2010#);
	_ObjectCallMethod( items , "AddItem", #12/28/2010#);
	_ObjectCallMethod( items , "AddItem", #12/29/2010#);
	_ObjectCallMethod( items , "AddItem", #12/30/2010#);
	_ObjectCallMethod( items , "AddItem", #12/31/2010#);
_ObjectCallMethod( grid , "ApplyFilter");
_ObjectCallMethod( grid , "EndUpdate");

749
Is it possible to filter dates

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Dates");
	_ObjectSetProperty( column , "SortType", 2);
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", -1);
	_ObjectSetProperty( column , "DisplayFilterDate", -1);
	_ObjectSetProperty( column , "FilterList", 1026);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", #12/27/2010#);
	_ObjectCallMethod( items , "AddItem", #12/28/2010#);
	_ObjectCallMethod( items , "AddItem", #12/29/2010#);
	_ObjectCallMethod( items , "AddItem", #12/30/2010#);
	_ObjectCallMethod( items , "AddItem", #12/31/2010#);
_ObjectCallMethod( grid , "EndUpdate");

748
Is it possible to change the Exclude field name to something different, in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Description(25) = `Leaving out`");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 9472);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
_ObjectCallMethod( grid , "EndUpdate");

747
How can I display the Exclude field in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 9472);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
_ObjectCallMethod( grid , "EndUpdate");

746
Is it possible to show and ensure the focused item from the control, in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 1280);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(InsertItem(h,,`Child 2`)) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( grid , "EndUpdate");

745
Is it possible to show only blanks items with no listed items from the control

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 16386);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( grid , "EndUpdate");

744
How can I include the blanks items in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 16640);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( grid , "EndUpdate");

743
How can I select multiple items in the drop down filter window, using check-boxes

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 256);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( grid , "EndUpdate");

742
Is it possible to allow a single item being selected in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 128);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( grid , "EndUpdate");

741
How can I display no (All) item in the drop down filter window

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
_ObjectCallMethod(grid, "ExecuteTemplate", "Description(0) = ``");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", -1);
	_ObjectSetProperty( column , "FilterList", 2);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( grid , "EndUpdate");

740
Is it possible to display no items in the drop down filter window, so only the pattern is visible

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", -1);
	_ObjectSetProperty( column , "FilterList", 2);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( grid , "EndUpdate");

739
How can I show the child items with no identation

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "Indent", 12);
_ObjectSetProperty( grid , "HasLines", 2);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");

738
Is there other ways of showing the hierarchy lines (exGroupLinesAtRoot)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", 1);
_ObjectSetProperty( grid , "Indent", 12);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");

737
Is there other ways of showing the hierarchy lines (exGroupLinesOutside)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", 5);
_ObjectSetProperty( grid , "Indent", 12);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");

736
Is there other ways of showing the hierarchy lines (exGroupLinesInsideLeaf)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", 4);
_ObjectSetProperty( grid , "Indent", 12);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");

735
Is there other ways of showing the hierarchy lines (exGroupLinesInside)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", 3);
_ObjectSetProperty( grid , "Indent", 12);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");

734
Is there other ways of showing the hierarchy lines (exGroupLines)

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", 2);
_ObjectSetProperty( grid , "Indent", 12);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", _ObjectCallMethod( items , "InsertItem", h,"","Child 2"),"","SubChild 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");

733
Is it possible to display a column with buttons when using exCRD format

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "DrawGridLines", -2);
_ObjectSetProperty( grid , "DefaultItemHeight", 36);
_ObjectSetProperty( grid , "FullRowSelect", 0);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Column1");
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
	column = _ObjectCallMethod( columns , "Add", "Column2");
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
	column = _ObjectCallMethod( columns , "Add", "Column3");
		_ObjectSetProperty( column , "Alignment", 1);
		_ObjectSetProperty( column , "HeaderAlignment", 1);
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(grid, "TemplatePut", column)
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(2) = True");
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(3) = True");
	column = _ObjectCallMethod( columns , "Add", "FormatLevel");
		_ObjectSetProperty( column , "FormatLevel", "(0/1),2:64");
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(32) = FormatLevel");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Cell 1.1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 1.2`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 1.3`");
	h = _ObjectCallMethod( items , "AddItem", "Cell 2.1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 2.2`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 2.3`");
_ObjectCallMethod( grid , "EndUpdate");

732
How can I change the check-boxes appearance

OBJECT appearance,column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectSetProperty( grid , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
	_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(grid, "TemplatePut", column)
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "PartialCheck", -1);
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
appearance = _ObjectGetProperty( grid , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"XP:Button 3 12");
	_ObjectCallMethod( appearance , "Add", 2,"XP:Button 3 11");
	_ObjectCallMethod( appearance , "Add", 3,"XP:Button 3 10");
_ObjectCallMethod(grid, "ExecuteTemplate", "CheckImage(0) = 16777216");
_ObjectCallMethod(grid, "ExecuteTemplate", "CheckImage(1) = 33554432");
_ObjectCallMethod(grid, "ExecuteTemplate", "CheckImage(2) = 50331648");

731
Is it possible to disable the cell's editor context menu
OBJECT editor,grid,items;

grid =  ObjectByName("AN1") ;
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Edit") , "Editor");
	_ObjectSetProperty( editor , "EditType", 1);
	_ObjectCallMethod(grid, "TemplatePut", "Dim ediObj")
	_ObjectCallMethod(grid, "TemplatePut", editor)
	_ObjectCallMethod(grid, "ExecuteTemplate", "ediObj.Option(202) = False");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 10);
	_ObjectCallMethod( items , "AddItem", 20);

730
How can I find a value in a drop down editor

OBJECT editor,grid,items;

grid =  ObjectByName("AN1") ;
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "DropDownList") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectCallMethod( editor , "AddItem", 1,"DDList 1");
	_ObjectCallMethod( editor , "AddItem", 2,"DDList 2");
	_ObjectCallMethod( editor , "AddItem", 3,"DDList 3");
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "DropDown") , "Editor");
	_ObjectSetProperty( editor , "EditType", 2);
	_ObjectCallMethod( editor , "AddItem", 1,"DDType 1");
	_ObjectCallMethod( editor , "AddItem", 2,"DDType 2");
	_ObjectCallMethod( editor , "AddItem", 3,"DDType 3");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(1),1) = Me.Columns.Item(1).Editor.FindItem(1)");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(2),1) = Me.Columns.Item(1).Editor.FindItem(2)");

729
What is the difference between DropDownType and DropDownListType

OBJECT editor,grid,items;

grid =  ObjectByName("AN1") ;
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "DropDownList") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectCallMethod( editor , "AddItem", 1,"First item");
	_ObjectCallMethod( editor , "AddItem", 2,"Second item");
	_ObjectCallMethod( editor , "AddItem", 3,"Third item");
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "DropDown") , "Editor");
	_ObjectSetProperty( editor , "EditType", 2);
	_ObjectCallMethod( editor , "AddItem", 1,"First item");
	_ObjectCallMethod( editor , "AddItem", 2,"Second item");
	_ObjectCallMethod( editor , "AddItem", 3,"Third item");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(1),1) = `Any`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(2),1) = `Any`");

728
How can I add or change the padding (spaces) for captions in the control's header

OBJECT column,grid;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Add(`Padding-Left`).Def(52) = 18");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Padding-Right");
	_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(grid, "TemplatePut", column)
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(53) = 18");
	_ObjectSetProperty( column , "HeaderAlignment", 2);
_ObjectCallMethod( grid , "EndUpdate");

727
Do you have any plans to add cell spacing and cell padding to the cells

OBJECT column,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "DrawGridLines", -2);
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Padding-Left");
	_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(grid, "TemplatePut", column)
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(48) = 18");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Add(`No-Padding`).Def(0) = True");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Empty") , "Position", 0);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item A.1`),1) = `Item A.2`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item B.1`),1) = `Item B.2`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item C.1`),1) = `Item C.2`");
_ObjectCallMethod( grid , "EndUpdate");

726
Is it possible to change the height for all items at once

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "LinesAtRoot", -1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Items");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(0) = True");
_ObjectCallMethod( grid , "EndUpdate");
_ObjectSetProperty( grid , "DefaultItemHeight", 12);
_ObjectCallMethod(grid, "ExecuteTemplate", "Items.ItemHeight(0) = 12");

725
Can I display somehow the filter just on the top of the list, with an editor associated to each column

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	OBJECT column;
	_ObjectCallMethod(grid, "TemplatePut", "Dim _ObObj,Item")
	_ObjectCallMethod(grid, "TemplatePut", _ObjectGetProperty( grid , "Items"))
	_ObjectCallMethod(grid, "TemplatePut", Item)
	Message( "Locked:" );
	Message( _ObjectCallMethod(grid, "ExecuteTemplate", "_ObObj.IsItemLocked(Item)") );
	column = _ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(ColIndex)");
		_ObjectSetProperty( column , "Filter", NewValue);
		_ObjectSetProperty( column , "FilterType", 3);
	_ObjectCallMethod( grid , "ApplyFilter");
END

// MouseUp event - Occurs when the user releases a mouse button.
FUNCTION gridEvents_MouseUp(OBJECT grid, INT Button, INT Shift, INT X, INT Y)
	_ObjectCallMethod(grid, "TemplatePut", "Dim _ObObj")
	_ObjectCallMethod(grid, "TemplatePut", _ObjectGetProperty( grid , "Items"))
	_ObjectCallMethod( grid , "Edit", _ObjectCallMethod(grid, "ExecuteTemplate", "_ObObj.LockedItem(0,0)"));
END

OBJECT grid,items,rs;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
_ObjectSetProperty( grid , "ScrollBySingleLine", -1);
_ObjectSetProperty( grid , "ContinueColumnScroll", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 2");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellEditor(h,0).EditType = 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(0,1)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemHeight(h) = 4");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectableItem(h) = False");

724
Is it possible to display information about the firing events
// Event event - Notifies the application once the control fires an event.
FUNCTION gridEvents_Event(OBJECT grid, INT EventID)
	Message( _ObjectCallMethod(grid, "ExecuteTemplate", "EventParam(-2)") );
END



723
How can I change the layout of my columns when using the exCRD

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "DrawGridLines", -2);
_ObjectSetProperty( grid , "DefaultItemHeight", 36);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Column1");
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
	column = _ObjectCallMethod( columns , "Add", "Column2");
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Column3") , "Visible", 0);
	column = _ObjectCallMethod( columns , "Add", "FormatLevel");
		_ObjectSetProperty( column , "FormatLevel", "(0/1),2");
		_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(grid, "TemplatePut", column)
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(32) = FormatLevel");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Cell 1.1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 1.2`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 1.3`");
	h = _ObjectCallMethod( items , "AddItem", "Cell 2.1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 2.2`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Cell 2.3`");
_ObjectCallMethod( grid , "EndUpdate");

722
Is it possible to scroll the control's content by clicking and moving the mouse up or down

OBJECT grid,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
_ObjectSetProperty( grid , "ContinueColumnScroll", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectSetProperty( grid , "AutoDrag", 16);
_ObjectCallMethod( grid , "EndUpdate");

721
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "VisualAppearance") , "Add", 1,"c:\exontrol\images\normal.ebn");
_ObjectCallMethod(grid, "ExecuteTemplate", "HTMLPicture(`p1`) = `c:\exontrol\images\card.png`");
_ObjectCallMethod(grid, "ExecuteTemplate", "HTMLPicture(`p2`) = `c:\exontrol\images\sun.png`");
_ObjectSetProperty( grid , "AutoDrag", 11);
_ObjectSetProperty( grid , "LinesAtRoot", 0);
_ObjectSetProperty( grid , "HasLines", 2);
_ObjectSetProperty( grid , "ShowFocusRect", 0);
_ObjectSetProperty( grid , "DefaultItemHeight", 26);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Task");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "<img>p1:32</img>Group 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	h = _ObjectCallMethod( items , "AddItem", "<img>p2:32</img>Group 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(0) = True");
_ObjectCallMethod( grid , "EndUpdate");

720
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

OBJECT grid,items,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod(grid, "ExecuteTemplate", "HTMLPicture(`p1`) = `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`");
_ObjectCallMethod(grid, "ExecuteTemplate", "HTMLPicture(`p2`) = `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`");
var_HTMLPicture = _ObjectCallMethod(grid, "ExecuteTemplate", "HTMLPicture(`aka1`)");
_ObjectSetProperty( grid , "HeaderHeight", 24);
_ObjectSetProperty( grid , "DefaultItemHeight", 48);
_ObjectSetProperty( grid , "DrawGridLines", -2);
_ObjectSetProperty( grid , "GridLineColor", 15790320);
_ObjectSetProperty( grid , "SelBackMode", 1);
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
_ObjectSetProperty( grid , "ContinueColumnScroll", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(0).Def(17) = 1");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(0).FormatColumn = `value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>``");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(0).Width = 112");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).Def(0) = 1");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(2).LevelKey = `1`");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(3).LevelKey = `1`");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(4).LevelKey = `1`");
_ObjectSetProperty( grid , "AutoDrag", 10);
_ObjectSetProperty( grid , "SingleSel", 0);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(1)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(2)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(3)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItemCount(2) = 1");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(2,0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,1) = `<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ...`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellSingleLine(h,1) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,1) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHAlignment(h,1) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDividerLineAlignment(h) = 2");
_ObjectCallMethod( grid , "EndUpdate");

719
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

OBJECT grid,items,rs;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "ColumnAutoResize", 0);
_ObjectSetProperty( grid , "ContinueColumnScroll", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( grid , "DataSource", rs);
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(2).LevelKey = `1`");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(3).LevelKey = `1`");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(4).LevelKey = `1`");
_ObjectSetProperty( grid , "AutoDrag", 9);
_ObjectSetProperty( grid , "SingleSel", 0);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(1)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(3)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(4)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemByIndex(5)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItemCount(2) = 1");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(2,0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ...`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellSingleLine(h,0) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHAlignment(h,0) = 1");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDividerLineAlignment(h) = 2");
_ObjectCallMethod( grid , "EndUpdate");

718
Is it possible to change the indentation during the drag and drop

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "VisualAppearance") , "Add", 1,"c:\exontrol\images\normal.ebn");
_ObjectSetProperty( grid , "AutoDrag", 3);
_ObjectSetProperty( grid , "LinesAtRoot", 0);
_ObjectSetProperty( grid , "HasLines", 1);
_ObjectSetProperty( grid , "HasButtons", 3);
_ObjectSetProperty( grid , "ShowFocusRect", 0);
_ObjectSetProperty( grid , "SelBackMode", 1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Task");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Group 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	h2 = _ObjectCallMethod( items , "InsertItem", h1,"","Task 2");
	h2 = _ObjectCallMethod( items , "InsertItem", h1,"","Task 3");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h1)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h1) = True");
	h = _ObjectCallMethod( items , "AddItem", "Group 2");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItemCount(2) = 1");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(2,0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `Click a row, and move by dragging <b>up, down</b> to change the row's parent or <b>left,right</b> to increase or decrease the indentation.`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellSingleLine(h,0) = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 1");
_ObjectCallMethod( grid , "EndUpdate");

717
Is it possible to allow moving an item to another, but keeping its indentation

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "VisualAppearance") , "Add", 1,"c:\exontrol\images\normal.ebn");
_ObjectSetProperty( grid , "AutoDrag", 2);
_ObjectSetProperty( grid , "LinesAtRoot", 0);
_ObjectSetProperty( grid , "HasLines", 2);
_ObjectSetProperty( grid , "ShowFocusRect", 0);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Task");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Group 1");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	h3 = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Group 2");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemBold(h) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
_ObjectCallMethod( grid , "EndUpdate");

716
How can I change the row's position to another, by drag and drop. Is it possible

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "VisualAppearance") , "Add", 1,"c:\exontrol\images\normal.ebn");
_ObjectSetProperty( grid , "AutoDrag", 1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Task");
items = _ObjectGetProperty( grid , "Items");
	h1 = _ObjectCallMethod( items , "AddItem", "Task 1");
	h2 = _ObjectCallMethod( items , "AddItem", "Task 2");
	h3 = _ObjectCallMethod( items , "AddItem", "Task 3");
_ObjectCallMethod( grid , "EndUpdate");

715
Is it possible background color displayed when the mouse passes over an item

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Def");
_ObjectSetProperty( grid , "HotBackColor", 8388608);
_ObjectSetProperty( grid , "HotForeColor", 16777215);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Item A");
	_ObjectCallMethod( items , "AddItem", "Item B");
	_ObjectCallMethod( items , "AddItem", "Item C");
_ObjectCallMethod( grid , "EndUpdate");

714
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Task");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Task 1");
	_ObjectCallMethod( items , "AddItem", "Task 2");
_ObjectCallMethod( grid , "EndUpdate");
_ObjectSetProperty( grid , "Template", "Dim p;p = CreateObject(`Exontrol.Print`);p.PrintExt = Me;p.AutoRelease = False;p.Preview();");

713
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

OBJECT createobject("exontrol.print"),grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod( items , "AddItem", "Task 2");
_ObjectCallMethod( grid , "EndUpdate");
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", _ObjectCallMethod( grid , "ExecuteTemplate", "me"));
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

712
How can I apply the same ConditionalFormat on more than 1(one) column (multiple columns and not on item)

OBJECT columns,conditionalformat,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( grid , "ConditionalFormats") , "Add", "1","K1");
	_ObjectSetProperty( conditionalformat , "BackColor", 255);
	_ObjectSetProperty( conditionalformat , "ApplyTo", 1);
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( grid , "ConditionalFormats") , "Add", "1","K2");
	_ObjectSetProperty( conditionalformat , "BackColor", 255);
	_ObjectSetProperty( conditionalformat , "ApplyTo", 2);
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
_ObjectSetProperty( grid , "DrawGridLines", -2);
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "Column 1");
	_ObjectCallMethod( columns , "Add", "Column 2");
	_ObjectCallMethod( columns , "Add", "Column 3");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod( items , "AddItem", );
_ObjectCallMethod( grid , "EndUpdate");

711
Is it possible to add new records and see them in the control's view using the DataSource

// ButtonClick event - Occurs when user clicks on the cell's button.
FUNCTION gridEvents_ButtonClick(OBJECT grid, INT Item, INT ColIndex, VARIANT Key)
	OBJECT recordset;
	recordset = _ObjectGetProperty( grid , "DataSource");
		_ObjectCallMethod( recordset , "AddNew", "Task","New-Task");
		_ObjectCallMethod( recordset , "Update", );
END

// Error event - Fired when an internal error occurs.
FUNCTION gridEvents_Error(OBJECT grid, INT Error, STRING Description)
	Message( Description );
END

OBJECT fields,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
rs = CreateObject("ADODB.Recordset");
fields = _ObjectGetProperty( rs , "Fields");
	_ObjectCallMethod( fields , "Append", "Task",8);
	_ObjectCallMethod( fields , "Append", "Start",7);
	_ObjectCallMethod( fields , "Append", "End",7);
_ObjectCallMethod( rs , "Open", );
_ObjectSetProperty( grid , "DrawGridLines", -2);
_ObjectSetProperty( grid , "DetectAddNew", -1);
_ObjectSetProperty( grid , "DetectDelete", -1);
_ObjectSetProperty( grid , "DataSource", rs);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 1");
	h = _ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemDivider(h) = 0");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ItemHeight(h) = 22");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(h,0) = `AddNew`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHasButton(h,0) = True");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellHAlignment(h,0) = 1");

710
How can I initiate an OLE Drag and Drop operation in /COM version

// OLEStartDrag event - Occurs when the OLEDrag method is called.
FUNCTION gridEvents_OLEStartDrag(OBJECT grid, OBJECT Data, INT AllowedEffects)
	' Data.SetData("your data to drag")
	AllowedEffects = 2;
END

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod( items , "AddItem", "Item 2");
	_ObjectCallMethod( items , "AddItem", "Item 3");
	_ObjectCallMethod( items , "AddItem", "Item 4");
	_ObjectCallMethod( items , "AddItem", "Item 5");
_ObjectSetProperty( grid , "OLEDropMode", 1);
_ObjectCallMethod( grid , "EndUpdate");

709
How can I find the order of the events
// AfterExpandItem event - Fired after an item is expanded (collapsed).
FUNCTION gridEvents_AfterExpandItem(OBJECT grid, INT Item)
	Message( "AfterExpandItem" );
	Message( Item );
END

// AnchorClick event - Occurs when an anchor element is clicked.
FUNCTION gridEvents_AnchorClick(OBJECT grid, STRING AnchorID, STRING Options)
	Message( "AnchorClick" );
	Message( AnchorID );
	Message( Options );
END

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
FUNCTION gridEvents_BeforeExpandItem(OBJECT grid, INT Item, VARIANT Cancel)
	Message( "BeforeExpandItem" );
	Message( Item );
END

// ButtonClick event - Occurs when user clicks on the cell's button.
FUNCTION gridEvents_ButtonClick(OBJECT grid, INT Item, INT ColIndex, VARIANT Key)
	Message( "ButtonClick" );
	Message( Item );
	Message( ColIndex );
	Message( Key );
END

// CellImageClick event - Fired after the user clicks on the image's cell area.
FUNCTION gridEvents_CellImageClick(OBJECT grid, INT Item, INT ColIndex)
	Message( "CellImageClick" );
	Message( Item );
	Message( ColIndex );
END

// CellStateChanged event - Fired after cell's state has been changed.
FUNCTION gridEvents_CellStateChanged(OBJECT grid, INT Item, INT ColIndex)
	Message( "CellStateChanged" );
	Message( Item );
	Message( ColIndex );
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION gridEvents_Change(OBJECT grid, INT Item, INT ColIndex, VARIANT NewValue)
	Message( "Change" );
	Message( Item );
	Message( ColIndex );
	Message( NewValue );
END

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
FUNCTION gridEvents_Click()
	Message( "Click" );
END

// ColumnClick event - Fired after the user clicks on column's header.
FUNCTION gridEvents_ColumnClick(OBJECT grid, OBJECT Column)
	Message( "ColumnClick" );
END

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
FUNCTION gridEvents_DblClick(OBJECT grid, INT Shift, INT X, INT Y)
	Message( "DblClick" );
	Message( Shift );
	Message( X );
	Message( Y );
	_ObjectCallMethod( grid , "Edit", );
END

// Edit event - Occurs just before editing the focused cell.
FUNCTION gridEvents_Edit(OBJECT grid, INT Item, INT ColIndex, INT Cancel)
	Message( "Edit" );
	Message( Item );
	Message( ColIndex );
END

// EditClose event - Occurs when the edit operation ends.
FUNCTION gridEvents_EditClose()
	Message( "EditClose" );
END

// EditOpen event - Occurs when the edit operation starts.
FUNCTION gridEvents_EditOpen()
	Message( "EditOpen" );
END

// FilterChange event - Occurs when filter was changed.
FUNCTION gridEvents_FilterChange()
	Message( "FilterChange" );
END

// FilterChanging event - Notifies your application that the filter is about to change.
FUNCTION gridEvents_FilterChanging()
	Message( "FilterChanging" );
END

// FocusChanged event - Occurs when a new cell is focused.
FUNCTION gridEvents_FocusChanged()
	Message( "FocusChanged" );
END

// KeyDown event - Occurs when the user presses a key while an object has the focus.
FUNCTION gridEvents_KeyDown(OBJECT grid, INT KeyCode, INT Shift)
	Message( "KeyDown" );
	Message( KeyCode );
	Message( Shift );
END

// KeyPress event - Occurs when the user presses and releases an ANSI key.
FUNCTION gridEvents_KeyPress(OBJECT grid, INT KeyAscii)
	Message( "KeyPress" );
	Message( KeyAscii );
END

// KeyUp event - Occurs when the user releases a key while an object has the focus.
FUNCTION gridEvents_KeyUp(OBJECT grid, INT KeyCode, INT Shift)
	Message( "KeyUp" );
	Message( KeyCode );
	Message( Shift );
END

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION gridEvents_LayoutChanged()
	Message( "LayoutChanged" );
END

// MouseDown event - Occurs when the user presses a mouse button.
FUNCTION gridEvents_MouseDown(OBJECT grid, INT Button, INT Shift, INT X, INT Y)
	Message( "MouseDown" );
	Message( Button );
	Message( Shift );
	Message( X );
	Message( Y );
END

// MouseMove event - Occurs when the user moves the mouse.
FUNCTION gridEvents_MouseMove(OBJECT grid, INT Button, INT Shift, INT X, INT Y)
END

// MouseUp event - Occurs when the user releases a mouse button.
FUNCTION gridEvents_MouseUp(OBJECT grid, INT Button, INT Shift, INT X, INT Y)
	Message( "MouseUp" );
	Message( Button );
	Message( Shift );
	Message( X );
	Message( Y );
END

// OffsetChanged event - Occurs when the scroll position has been changed.
FUNCTION gridEvents_OffsetChanged(OBJECT grid, INT Horizontal, INT NewVal)
	Message( "OffsetChanged" );
	Message( Horizontal );
	Message( NewVal );
END

// OversizeChanged event - Occurs when the right range of the scroll has been changed.
FUNCTION gridEvents_OversizeChanged(OBJECT grid, INT Horizontal, INT NewVal)
	Message( "OversizeChanged" );
	Message( Horizontal );
	Message( NewVal );
END

// RClick event - Fired when right mouse button is clicked
FUNCTION gridEvents_RClick()
	Message( "RClick" );
END

// ScrollButtonClick event - Occurs when the user clicks a button in the scrollbar.
FUNCTION gridEvents_ScrollButtonClick(OBJECT grid, INT ScrollBar, INT ScrollPart)
	Message( "ScrollButtonClick" );
	Message( ScrollBar );
	Message( ScrollPart );
END

// SelectionChanged event - Fired after a new item has been selected.
FUNCTION gridEvents_SelectionChanged()
	Message( "SelectionChanged" );
END

// Sort event - Fired when the control sorts a column.
FUNCTION gridEvents_Sort()
	Message( "Sort" );
END

OBJECT column,columns,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod( grid , "Images", "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq" +
	"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1BAmBhOCwMGwuDw2ExWJxmIx2HyGLv+TlykUCgABmGYzzObzuczWcKujzOa0ug02h" +
	"z+r1Wtz2qoCA2QAYG1yk02YA3NMy2Yh8Sh202zx4gA4jxADM5XG4vHACy6ESdjM6XUZiZTMS5bwZSm1c83+yQHCYHk81Q8O7qW18u/9NG3vAf/y83u4PQWQA0ZVADq/z" +
	"6um6rkuw7TqH+5bYJu+z5vE8z2N02cGweoDfwfCrbQfBqkNzBb6QfDLxp6+LlOs5cSOTEzlm7FYACFFwADvGIAGvGjzOu7MbwHHECQSmUOvS8cGwk20gQc2ycQs4MLvL" +
	"D8MNtDSfyS+cmyZJzywa96axzDsTw6/x1AAL8xRbF8Vm65jkH/AL8QFNTqR6lsfuDIb2uDKTzTo88FTtIk+PK3SNRDKiew5JVDSnK08NnOUGRClkt0PFEDUjMwAENS4A" +
	"M2zj4udNznujT1PTgjdGQg8c71RPtESvCL1JrO8lozQUj1nP6d1TKtc0U8dS1jCaNRzGhrxnGthWJYdjUrYwc2ZMMx2NB8czZNk4VLPMstzXD6Q6mltVjPNAT0m1CvnD" +
	"tBxBXlI3PRKNzZDtjQ6cd5TQ/TSU0/r/udC0A1Ez1SUja8/QhWVavrSLfpxWNzXZR2CygmVtXXVl03Lg+BV+lV3UjeDgzEL4AXkcb6Pje5LZNDzhuLfrOX/RtT0TQbc5" +
	"lENSvBi2K5xlFdUHhN1ZhJ9F59WybOU7NjWTFkvxhGT9zIIQAWYHIABFqmnABSsT0HUaNYlI1dZmjNuUDRybzvIVWyDoOc54n8Oyxm9Ta9cSUaLbbg44+b4xiO9nY/pt" +
	"73u38Tuc52tpdruYxDVyUbBV+gYpu2c7PyGMKTt21cjnW6OvzO8PppUvP/Ljlt/wt/Vvn+v8V1eCdbgaa7fnMi8vyD0TnzGEJXyp/wJ3js98iXe+F3/hwGM3jeQZjTeU" +
	"znmOT5bTKJyqYcbm2c5bzXpqvsWw4FUkCO473wgB8cD9/znzO14n1+D4/efcTP4fl5+WKvxbbptmqV+B/ni/68R4514AvxeTAR50B3oPNei/iBhFgfErgeR4kBIiSAAJ" +
	"KSiC7PT5wMKIQ4fwfyHDzg2PwD4/B/jgg2PgA48AfjgB+RkeAARwAPGAA8jI4AADgAOMAAZGTyw6YbDkA7ZDaAHgxDyCxGgBw8EBBmJcS4LjAATDweBGoqjgAGP4jQ/A" +
	"cjwAHBsiQex8gPH+MF7pDxxkB");
_ObjectSetProperty( grid , "DrawGridLines", -1);
_ObjectSetProperty( grid , "LinesAtRoot", -1);
_ObjectSetProperty( grid , "GridLineStyle", 4);
_ObjectSetProperty( grid , "AutoEdit", 0);
_ObjectSetProperty( grid , "ExpandOnDblClick", 0);
columns = _ObjectGetProperty( grid , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Column");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectCallMethod(grid, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(grid, "TemplatePut", column)
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(0) = True");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
	column = _ObjectCallMethod( columns , "Add", "Button");
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "Width", 18);
		_ObjectCallMethod(grid, "ExecuteTemplate", "colObj.Def(2) = True");
items = _ObjectGetProperty( grid , "Items");
	h = _ObjectCallMethod( items , "AddItem", "parent");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "TemplatePut", h)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellImage(h,0) = 1");
	_ObjectCallMethod( items , "InsertItem", h,"","child");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( grid , "EndUpdate");

708
Is it possible to select a column instead sorting it

// ColumnClick event - Fired after the user clicks on column's header.
FUNCTION gridEvents_ColumnClick(OBJECT grid, OBJECT Column)
	' Column.Selected = True
	_ObjectCallMethod( grid , "BeginUpdate");
	_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(0).Selected = False");
	_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(1).Selected = False");
	_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "SelectAll");
	_ObjectCallMethod( grid , "EndUpdate");
END

OBJECT columns,grid,items;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "MarkSearchColumn", 0);
_ObjectSetProperty( grid , "ShowFocusRect", 0);
_ObjectSetProperty( grid , "SingleSel", 0);
_ObjectSetProperty( grid , "FullRowSelect", 1);
_ObjectSetProperty( grid , "SortOnClick", 0);
columns = _ObjectGetProperty( grid , "Columns");
	_ObjectCallMethod( columns , "Add", "Column1");
	_ObjectCallMethod( columns , "Add", "Column2");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`One`),1) = `Three`");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Two`),1) = `Four`");
	_ObjectCallMethod( items , "SelectAll");
_ObjectCallMethod( grid , "EndUpdate");

707
Is it possible to display empty strings for 0 values

OBJECT column,editor,grid,items;

grid =  ObjectByName("AN1") ;
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Currency");
	_ObjectSetProperty( column , "FormatColumn", "dbl(value) ? currency(dbl(value)) : ``");
	editor = _ObjectGetProperty( column , "Editor");
		_ObjectSetProperty( editor , "EditType", 1);
		_ObjectSetProperty( editor , "Numeric", 1);
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 1.23);
	_ObjectCallMethod( items , "AddItem", 2.34);
	_ObjectCallMethod( items , "AddItem", 0);
	_ObjectCallMethod( items , "AddItem", 10000.99);

706
Is it possible to display empty strings for 0 values

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Number");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Currency") , "ComputedField", "%0 ? currency(%0) : ``");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", 1.23);
	_ObjectCallMethod( items , "AddItem", 2.34);
	_ObjectCallMethod( items , "AddItem", 0);
	_ObjectCallMethod( items , "AddItem", 10000.99);

705
How can I get the list of items as they are displayed

OBJECT grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "BackColorAlternate", 15790320);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Names");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", "Mantel");
	_ObjectCallMethod( items , "AddItem", "Mechanik");
	_ObjectCallMethod( items , "AddItem", "Motor");
	_ObjectCallMethod( items , "AddItem", "Murks");
	_ObjectCallMethod( items , "AddItem", "Märchen");
	_ObjectCallMethod( items , "AddItem", "Möhren");
	_ObjectCallMethod( items , "AddItem", "Mühle");
_ObjectCallMethod(grid, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( grid , "EndUpdate");
Message( _ObjectCallMethod( grid , "GetItems", 1) );

704
Is it possible to add new rows, as I type like in Excel

// EditClose event - Occurs when the edit operation ends.
FUNCTION gridEvents_EditClose()
	_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", "");
END

OBJECT grid;

grid =  ObjectByName("AN1") ;
ObjectAssociateEvents("gridEvents", grid);
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectSetProperty( grid , "AutoEdit", -1);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Default") , "Editor") , "EditType", 1);
_ObjectSetProperty( grid , "FullRowSelect", 0);
_ObjectCallMethod( _ObjectGetProperty( grid , "Items") , "AddItem", "");
_ObjectSetProperty( grid , "DrawGridLines", -1);
_ObjectSetProperty( grid , "ScrollBars", 15);
_ObjectCallMethod( grid , "EndUpdate");

703
Is posible to reduce the size of the picture to be shown in the column's caption

OBJECT grid;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
_ObjectCallMethod(grid, "ExecuteTemplate", "HTMLPicture(`pic1`) = `c:\exontrol\images\zipdisk.gif`");
_ObjectSetProperty( grid , "HeaderHeight", 48);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "DefaultSize") , "HTMLCaption", "Default-Size <img>pic1</img> Picture");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "CustomSize") , "HTMLCaption", "Custom-Size <img>pic1:16</img> Picture");
_ObjectCallMethod( grid , "EndUpdate");

702
How can I change the color, font, bold etc for the items/cells in the same column or for the entire column

OBJECT column,conditionalformat,grid,items;

grid =  ObjectByName("AN1") ;
_ObjectCallMethod( grid , "BeginUpdate");
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( grid , "ConditionalFormats") , "Add", "1");
	_ObjectSetProperty( conditionalformat , "Bold", -1);
	_ObjectSetProperty( conditionalformat , "ForeColor", 255);
	_ObjectSetProperty( conditionalformat , "ApplyTo", 1);
_ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "C1");
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "C2");
	_ObjectSetProperty( column , "HeaderBold", -1);
	_ObjectSetProperty( column , "HTMLCaption", "<fgcolor=FF0000>C2");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod(grid, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(grid, "TemplatePut", items)
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(10),1) = 11");
	_ObjectCallMethod(grid, "ExecuteTemplate", "iteObj.CellValue(AddItem(12),1) = 13");
_ObjectCallMethod( grid , "EndUpdate");

701
How can I filter the check-boxes (method 2)

OBJECT column,editor,grid,items;

grid =  ObjectByName("AN1") ;
column = _ObjectCallMethod( _ObjectGetProperty( grid , "Columns") , "Add", "Check");
	editor = _ObjectGetProperty( column , "Editor");
		_ObjectSetProperty( editor , "EditType", 19);
		_ObjectCallMethod(grid, "TemplatePut", "Dim ediObj")
		_ObjectCallMethod(grid, "TemplatePut", editor)
		_ObjectCallMethod(grid, "ExecuteTemplate", "ediObj.Option(17) = 1");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "CustomFilter", "checked||-1|||unchecked||0");
items = _ObjectGetProperty( grid , "Items");
	_ObjectCallMethod( items , "AddItem", -1);
	_ObjectCallMethod( items , "AddItem", -1);
	_ObjectCallMethod( items , "AddItem", 0);
	_ObjectCallMethod( items , "AddItem", -1);
	_ObjectCallMethod( items , "AddItem", 0);
	_ObjectCallMethod( items , "AddItem", -1);
	_ObjectCallMethod( items , "AddItem", 0);